"use strict";

import axios from "axios";
import { createApp } from "vue"; // 使用 Vue 3 的命名导入

// 配置 Axios 实例
let config = {
  // baseURL: process.env.baseURL || process.env.apiUrl || "",
  // timeout: 60 * 1000, // Timeout
  // withCredentials: true, // Check cross-site Access-Control
};

const _axios = axios.create(config);

// 请求拦截器
_axios.interceptors.request.use(
  function (config) {
    // 在请求发送前执行的操作
    return config;
  },
  function (error) {
    // 处理请求错误
    return Promise.reject(error);
  }
);

// 响应拦截器
_axios.interceptors.response.use(
  function (response) {
    // 对响应数据做处理
    return response;
  },
  function (error) {
    // 处理响应错误
    return Promise.reject(error);
  }
);

// 定义插件
const Plugin = {
  install(app) {
    // 将 Axios 挂载到全局对象上
    app.config.globalProperties.axios = _axios;
    app.config.globalProperties.$axios = _axios;

    // 如果需要，也可以挂载到 window 上
    window.axios = _axios;
  }
};

// 移除 Vue.use(Plugin)，改为在 main.js 中显式调用 app.use(Plugin)
// Vue.use(Plugin); // 这一行应该移除

export default Plugin;